Multiple approaches to booting from more than one storage device and for selecting one of a plurality of operating systems are known. Systems often use boot.ini and the boot configuration data base. Microsoft® has created a detailed document showing how the boot configuration database (BCD) is architected and edited as BCD objects.
The capability of computer systems to boot from more than one storage device or the ability to boot a selected operating system from a number of operating systems has been present for quite some time. WINDOWS NT™ operating systems have been in the field since 1993 and have had multi-boot capability.
NT™ systems from NT 3.1™ through NT 5.2™ released in 2007 have typically used a boot preference file named boot.ini. This file, if present, is read by an early load portion of NT™ and processed. The file typically contains the ID and address of each partition and sub-folder in the partition that houses or contains an operating system, and the identity of a default operating system, and a timer value which states in seconds the amount of time the information will be displayed to a user before the default operating system will be booted.
Sophisticated users can edit the boot.ini file and change the default operating system to be booted and/or add or remove operating systems. See FIGS. 2A and 2B for examples of boot.ini files.
Starting with WINDOWS NT 6™ released in 2006, the boot.ini file was discarded and a new facility with increased capability called Boot Configuration Database (BCD) was introduced to control the booting of a system.
The BCD provides a firmware-independent mechanism for manipulating boot environment data for typically for WINDOWS VISTA™ and later operating systems. WINDOWS VISTA™ and later versions of WINDOWS use it to load the operating system or to run boot applications such as memory diagnostics. The BCD abstracts the underlying firmware. BCD currently supports both PC/AT BIOS and Extensible Firmware Interface (EFI) systems. BCD interfaces perform all necessary interaction with firmware.
The BCD allows developers to programmatically manipulate a BCD store or objects through the BCD WMI Provider™. The WMI Provider™ supports a unified programming interface that can be used for both local and remote management of BCD stores. The interface is independent of the underlying firmware, so developers can write one application that works on any type of system.
The reference manual for the BCD facility is available at microsoft's website and is incorporated by reference herein.
The manual describes the exact interface and how objects within the BCD are manipulated.
Additionally, if the operating system on the system drive becomes non-operational, and even if the user has a bootable backup storage device attached to the computer system, it can be a daunting task to use that backup as the primary bootable storage device. Until now, the user typically needed to change the BIOS settings to boot the backup storage device or remove the backup drive from its enclosure and install it into the computer system.